The Relationship of Tree Canopy to Urban Heat Effect and Inequality: A Case Study
Authors
Affiliation
Eleanor Lindsey
Colorado State University
Clara Jordan
Colorado State University
Sierra Champion
Colorado State University
ABSTRACT
This study investigates the relationship between tree canopy cover, urban temperature, and income levels in Los Angeles, California, with a focus on the Urban Heat Island (UHI) effect. As cities like Los Angeles continue to expand and global temperatures rise, urban areas are experiencing higher heat exposure, particularly in neighborhoods with limited green space. We aimed to test two main hypotheses: (1) that lower tree canopy coverage would be associated with higher temperatures, and (2) that lower canopy coverage would be correlated with lower income, based on the “luxury effect” described in previous research. Using data from 2003 to 2023, including average annual temperatures, tree canopy loss, and 2023 census tract median incomes, we conducted visual and statistical analyses to explore these relationships. While visualizations suggested a strong association between canopy loss and temperature, the Pearson correlation test did not yield statistically significant results. Additionally, our analysis found no measurable correlation between tree canopy and income, although this may be due to limitations in the data structure. Despite these challenges, our findings reinforce the importance of urban tree canopies in regulating temperature and highlight the need for more targeted, high-resolution data to understand environmental inequalities in urban heat exposure fully.
INTRODUCTION & HYPOTHESIS
Due to the effects of climate change, large cities like Los Angeles, California, are expected to see regularly increasing temperatures [@CaliforniaClimateChange]. When looking at a heat map, an odd phenomenon shows higher temperatures within city limits than in rural areas on the border. This unequal heating is called the Urban Heat Island (UHI) effect [@HeatIslandHealthEffects]. This is due to reduced vegetation cover, increased concrete, disruptive buildings, and human activities [@HeatIslandHealthEffects]. This effect is projected to worsen as more of the world’s population migrates to urban environments, cities continue to grow, and global temperatures rise [@HeatIslandTrends]. Areas already impacted by the UHI effect will “bear the brunt” of intensified heat waves brought on by climate change [@HeatIslandTrends].
From the 1980s onwards, environmental movements began to advocate for increased green space and sustainability in urban planning [@LAHeatIsland]. Initiatives promoting tree canopy restoration, urban greening, and park creation have been prioritized to mitigate the impacts of climate change and improve public health [@CoolingEffectsOfTrees]. Notably, the city has recognized the need to address the disproportionate effects of urban heat on low-income communities [@UrbanGreenSpaceInequality]. However, despite these efforts, many neighborhoods still struggle with heat exposure and lack adequate vegetation, emphasizing the need for continued research and policy reform to ensure equitable access to urban green spaces [@UrbanGreenSpaceInequality].
During this period, a growing awareness of environmental issues began to emerge [@HeatIslandTrends]. Land-use planning and urban development often neglect the integration of green spaces, leading to stark inequalities within the city [@HeatIslandTrends]. Areas predominantly inhabited by low-income communities and people of color were typically underserved in terms of infrastructure and green spaces, resulting in disparities in health outcomes and environmental benefits compared to wealthier neighborhoods [@UrbanGreenSpaceInequality].
Even before considering climate change, the urban heat island effect can have severe impacts, including changing urban ecosystems and biodiversity and exacerbating human health issues [@HeatIslandHealthEffects]. Increasing urban temperatures can lead to health impacts, including increased exposure to extreme heat, air pollution, heat stroke, cardiorespiratory mortality, kidney disease, and mental illness, among others [@HeatIslandHealthEffects].
One of the primary benefits of urban green spaces is their ability to cool the surrounding environment [@CoolingEffectsOfTrees]. Trees and vegetation play a vital role in reducing temperatures through evapotranspiration, where water is absorbed by the roots and released as water vapor from the leaves. This natural cooling effect can significantly lower urban temperatures, helping to combat the extreme heat conditions associated with the Urban Heat Island (UHI) effect [@HeatIslandTrends]. Research shows that areas with denser tree canopies can experience temperature reductions of five to ten degrees Fahrenheit compared to surrounding asphalt or concrete regions [@CoolingEffectsOfTrees].
Additionally, urban green spaces help improve air quality [@UrbanGreenSpacesAirQuality]. Trees act as natural air filters by absorbing pollutants and providing oxygen. Green spaces have been linked to reductions in air pollutants like carbon dioxide, nitrogen dioxide, and particulate matter, thereby promoting healthier urban environments [@UrbanGreenSpacesAirQuality]. Studies indicate that residents living near green spaces report better physical and mental health outcomes, likely due to increased opportunities for physical activity, social interaction, and psychological restoration provided by nature [@HealthBenefitsOfGreenSpaces].
Los Angeles is a prime example of the UHI effect as it is a large city housing millions of people with a tall, dense skyline. Asphalt and blacktop trap a significant amount of heat, making the temperatures within the five counties that make up the metropolis hotter than those in surrounding rural areas [@LAHeatIsland]. In this study, we aim to investigate how the urban heat island effect in Los Angeles is related to tree cover and income. We intend to explore if tree cover and temperature are related, and how this may be spatially associated with income. We were inspired by Schell et al. 2020 b’s thoughts on the luxury effect, the idea that urban biodiversity is positively correlated with neighborhood wealth [@RacismInUrbanEnvironments]. This curiosity raised questions like: How will climate change exacerbate urban heat? Can we identify neighborhoods in Los Angeles at higher risk of urban heat health impacts? To investigate this question, the objective of our study was to answer the following question: Does decreased tree canopy contribute to increased urban temperatures and correlate with median income in Los Angeles? Our hypotheses include: A) As tree canopy decreases, the mean annual temperature will increase because of the urban heat island effect, and B) As tree canopy decreases, the mean annual income will decrease due to the historical marginalization of low-income home communities in neighborhoods with little green space, per the luxury effect [@RacismInUrbanEnvironments].
To explore these hypotheses, we obtained Los Angeles-centric data on yearly average temperatures in Los Angeles from 2013 - 2023 [@TempData], tree canopy cover loss from 2001 - 2023 [@LATreeLoss], and median income for 2023 [@MedianIncomeCensusTract]. With R as our analysis platform, we combined these datasets and visually analyzed the relationships between our three variables using scatter plots. All analyses were performed using R version 2024.12.1.
METHODS
We compiled datasets on air temperature records, median income, and land cover [@TempData; @MedianIncomeCensusTract; @LATreeLoss]. Our question pertains to the heat island effect, which is correlated to the change in air temperature within city limits [@HeatIslandTrends]. Moreover, we analyzed the relationship between median household income and the urban heat island (UHI) effect. We first cleaned our three data sets utilizing a dplyr verb pipeline in R to perform filters, selections, and omissions of NA values. These data sets had different temporal boundaries, with the income data spanning a five-year range and the other two sources covering 2003 to 2023. We addressed this by limiting our income data analysis from 2018 to 2023 and disregarding previous years.
The second step to preparing our data for analysis was to join our data sets (temperature, land cover, and income) using a left join on the common “year” column. This was done to create a unified data frame to analyze. This joined data frame was then analyzed to answer our question: Does decreased tree canopy contribute to increased urban temperatures and correlate with median income? To answer this question, we tested both hypotheses in the following manner: we used a Pearson correlation test to examine the correlation between tree canopy and mean annual temperature in Los Angeles, and we also used the correlation function to test the correlation between tree canopy and mean annual income in Los Angeles. To bolster our statistical tests, we also explored the relationships between our variables by creating visualizations that show trends in temperature and tree canopy loss over the project’s temporal span. To compare tree canopy cover loss with temperature changes, we disaggregated the temperature data by two locations: one urban and one rural, to see if the UHI effects are more severe in urban environments. This would support Hypothesis A.
These methods helped us answer our question by revealing potential relationships between tree canopy, mean annual temperature, and income. This allowed us to draw conclusions about the extent of the UHI effect in urban and rural areas of Los Angeles and to relate temperature trends to the loss of tree canopy cover over time. Moreover, the results incorporating the analysis of income trends are inconclusive, as shown in the following section.
RESULTS
This study found that as the tree canopy decreases, the mean annual temperature increases, and found no relationship between tree canopy and median income. To test Hypothesis A, as the tree canopy decreases, the mean annual temperature is expected to increase due to the urban heat island effect, we first compared urban and suburban temperature data from downtown Los Angeles and the Malibu Hills, respectively. This comparison revealed a stark contrast between suburban and urban temperatures across the twenty-year time series from 2003 to 2023. Consistently throughout this time series, the Malibu Hills temperature records were lower than those for downtown Los Angeles, as summarized in Figure 1 below.
library(here)
here() starts at /Users/eleanor/Library/Mobile Documents/com~apple~CloudDocs/Documents/Documents - Eleanor MacBook Pro/ESS330-Quantitative-Reasoning/github/Personal_project_workspace
library(dplyr)
Attaching package: 'dplyr'
The following objects are masked from 'package:stats':
filter, lag
The following objects are masked from 'package:base':
intersect, setdiff, setequal, union
library(readr)library(ggplot2)library(lubridate)
Attaching package: 'lubridate'
The following objects are masked from 'package:base':
date, intersect, setdiff, union
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(plotly)
Attaching package: 'plotly'
The following object is masked from 'package:ggplot2':
last_plot
The following object is masked from 'package:stats':
filter
The following object is masked from 'package:graphics':
layout
temp_data1<-read_csv(here("data/2003-2005 Temperature Data(in).csv"))
Rows: 153 Columns: 4
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (2): STATION, NAME
dbl (2): DATE, TAVG
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
temp_data2<-read_csv(here("data/2006-2012 Temperature Data(in).csv"))
Rows: 394 Columns: 4
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (2): STATION, NAME
dbl (2): DATE, TAVG
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
temp_data3<-read_csv(here("data/2013-2019 Temperature Data(in).csv"))
Rows: 422 Columns: 4
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (2): STATION, NAME
dbl (2): DATE, TAVG
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
temp_data4<-read_csv(here("data/2020-2023 Temperature Data(in).csv"))
Rows: 245 Columns: 4
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (2): STATION, NAME
dbl (2): DATE, TAVG
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
downtown_stations <-c("LOS ANGELES DOWNTOWN USC, CA US", "MALIBU HILLS CALIFORNIA, CA US")temperature_data_filtered <- temperature_data %>%filter(NAME %in% downtown_stations)station_labels<-c("LOS ANGELES DOWNTOWN USC, CA US"="Downtown LA","MALIBU HILLS CALIFORNIA, CA US"='Malibu Hills' )Temperature_plot <-ggplot(temperature_data_filtered, aes(x = Year, y = TAVG, color = NAME)) +geom_line() +scale_x_continuous(breaks =seq(2003, 2023, by =4), labels =seq(2003, 2023, by =4)) +scale_color_manual(values =c("dodgerblue", "firebrick"), labels = station_labels) +labs(title ="Average Temperature in Los Angeles Downtown Stations",x ="Year",y ="Temperature (°F)" ) +theme_minimal(base_size =14)ggplotly(Temperature_plot)
Figure 1: Yearly average temperature (degrees Fahrenheit) for USGS weather stations in downtown Los Angeles (blue line) and one within the Malibu Hills area (red line). The data ranges from 2003 to 2023 recording trends of increased temperature spikes in Downtown in the years of 2006, 2008, 2015, and 2016. The Malibu Hills station recorded lower spikes in temperature during similar years.
In Figure 1, the temperature data is categorized by a yearly average temperature in LA in degrees Fahrenheit. These results confirm the existence of the urban heat island (UHI), characterized by higher and more variable temperatures in urban environments compared to suburban environments. This study then incorporated tree canopy loss as a variable influencing temperature. Figure 2 visualizes trends in tree canopy loss in Los Angeles over the same time series considered for temperature data. We can see continual tree canopy loss over the twenty years considered, characteristic of urban environments which continue to develop as population increases over time. Spikes indicate periods of elevated tree canopy loss, such as in 2009 and 2020.
Rows: 23 Columns: 6
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (1): iso
dbl (5): adm1, adm2, umd_tree_cover_loss__year, umd_tree_cover_loss__ha, gfw...
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Tree_loss_plot<-ggplot(tree_canopy_data, aes(x=Year, y=Tree_loss_ha))+geom_area(fill="forestgreen",color="forestgreen")+labs(x="Year", y="Tree Canopy Loss (ha)", title="Tree Canopy Loss in LA per Year")Tree_loss_plot
Figure 2: Yearly tree canopy loss (hectares) in Los Angeles California from 2003 to 2023. The green shaded region shows how much canopy growth was lost per year including natural causes (wildfires, disease) and human based activities (urbanization, logging). The largest spike in the data occurred in 2009.
Given the hypothesized relationship between tree canopy loss and temperature due to the UHE, it is no surprise that this study also found a very strong visual correlation between these two variables. As seen below in Figure 3, temperature trends follow those of tree canopy loss in Los Angeles. While the spikes and dips are not to the same order of magnitude between these two variables, it is evident that increases in tree canopy cover loss impact temperature. For example, in 2009, there was a significant decrease in tree canopy cover of over 20,000 hectares. This large spike can be attributed to the Station fire in California that burned over 60,000 hectares of National Forest [@Station-Fire]. After this spike, temperature readings in both downtown Los Angeles and Malibu Hills increased steadily for approximately the next five years. It is important to note that throughout these changes in tree canopy cover, the variation in Malibu Hills temperature records is less than that of downtown Los Angeles, further demonstrating the regulatory and cooling impact of tree canopy in developed environments
Rows: 2495 Columns: 13
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (8): tract, ami_category, below_med_income, below_60pct_med_income, belo...
dbl (5): med_hh_income, med_hh_income_universe, ESRI_OID, Shape__Area, Shape...
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
combined_Temp_tree_data<-left_join(tree_canopy_data,temperature_data, by='Year')%>%rename('Temp_average'='TAVG', 'Station_name'='NAME')combined_income_tree_temp <-cross_join(combined_Temp_tree_data, median_income_data)combined_income_tree_temp <- combined_income_tree_temp[-c(1:4990), ]station_labels <-c("LOS ANGELES DOWNTOWN USC, CA US"="Downtown LA","MALIBU HILLS CALIFORNIA, CA US"="Malibu Hills")filtered_data_combined <- combined_income_tree_temp %>%filter(Station_name %in%c("LOS ANGELES DOWNTOWN USC, CA US", "MALIBU HILLS CALIFORNIA, CA US"))scale_factor <-max(combined_income_tree_temp$Tree_loss_ha, na.rm =TRUE) /max(combined_income_tree_temp$Temp_average, na.rm =TRUE)# Plotcombined_plot <-ggplot(filtered_data_combined, aes(x = Year)) +# Tree loss linegeom_line(aes(y = Tree_loss_ha), color ="forestgreen", size =1) +# Temperature lines by stationgeom_line(aes(y = Temp_average * scale_factor, color = Station_name), size =1) +scale_x_continuous(breaks =seq(2003, 2023, by =2),labels =seq(2003, 2023, by =2) ) +scale_y_continuous(name ="Tree Canopy Loss (ha)",sec.axis =sec_axis(~./scale_factor, name ="Average Temperature (°F)") ) +scale_color_manual(values =c("LOS ANGELES DOWNTOWN USC, CA US"="dodgerblue","MALIBU HILLS CALIFORNIA, CA US"="firebrick"),labels = station_labels,name ="Weather Station" ) +theme_minimal() +theme(axis.title.y.left =element_text(color ="forestgreen"),axis.text.y.left =element_text(color ="forestgreen"),axis.title.y.right =element_text(color ="black"),axis.text.y.right =element_text(color ="black"),legend.position ="bottom" ) +labs(title ="Tree Loss and Average Temperature by Year",x ="Year" )
Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
ℹ Please use `linewidth` instead.